Databases have become the subject of significant recent interest, not only because of the increasing volume of data being stored and retrieved by computerized databases but also by virtue of the data relationships which can be established during the storage and retrieval processes.
Structured Query Language (SQL), and in particular ANSI SQL, has become a preferred language media for communicating queries to relational databases. As a consequence, there presently exist thousands of relational databases and thousands of related queries directed to such databases. Given an investment in such databases and queries, migration is not only a desirable feature, but a substantially necessary capability for new relational database systems and methods.
To a Database Manager (DBM) application program, each fetch of the next row is a separate SQL request. If each row fetch of the next row is implemented as a direct call to the SQL DBM, a large amount of overhead is accrued per request. For local applications resident on a server machine, the per request overhead is two process switches and a DBM Agent process attach and deattach. For a remote application running on a client machine, there is additional overhead associated with the round-trip message per request.
Blocking is an application transparent technique that allows multiple rows at a time to be moved between an application process and a DBM Agent process. Thus, blocking distributes the overhead burden over many rows.